//package com.fy.fyspace;
//
//import org.junit.jupiter.api.Test;
//import org.springframework.boot.test.context.SpringBootTest;
//
//import java.util.Arrays;
//import java.util.List;
//import java.util.Map;
//import java.util.Set;
//import java.util.stream.Collectors;
//
//import static com.aliyun.oss.common.utils.CodingUtils.assertTrue;
//import static org.junit.jupiter.api.Assertions.assertEquals;
//
//@SpringBootTest
//public class hhtest {
//
//    // 模拟删除状态枚举
//    enum PictureDeleteStatusEnum {
//        NOT_DELETE(0, "未删除"),
//        IS_DELETE(1, "已删除");
//
//        private final int value;
//        private final String desc;
//
//        PictureDeleteStatusEnum(int value, String desc) {
//            this.value = value;
//            this.desc = desc;
//        }
//
//        public int getValue() {
//            return value;
//        }
//    }
//
//    @Test
//    public void testFavoritePictureFiltering() {
//        // ------------------- 模拟数据 -------------------
//        // 模拟已存在的收藏记录（用Map模拟对象属性）
//        List<Map<String, Object>> existingFavorites = Arrays.asList(
//                // 已删除的收藏（isDelete=1）
//                Map.of("picId", 1001L, "isDelete", PictureDeleteStatusEnum.IS_DELETE.getValue()),
//                Map.of("picId", 1002L, "isDelete", PictureDeleteStatusEnum.IS_DELETE.getValue()),
//                Map.of("picId", 1003L, "isDelete", PictureDeleteStatusEnum.IS_DELETE.getValue()),
//
//                // 未删除的收藏（isDelete=0）
//                Map.of("picId", 2001L, "isDelete", PictureDeleteStatusEnum.NOT_DELETE.getValue()),
//                Map.of("picId", 2002L, "isDelete", PictureDeleteStatusEnum.NOT_DELETE.getValue()),
//                Map.of("picId", 2003L, "isDelete", PictureDeleteStatusEnum.NOT_DELETE.getValue())
//        );
//
//        // ------------------- 核心逻辑模拟 -------------------
//        // 1. 筛选已删除的图片ID
//        Set<Long> alreadyAndNoUseFavoriteIds = existingFavorites.stream()
//                .filter(fv -> PictureDeleteStatusEnum.IS_DELETE.getValue()
//                        .equals(fv.get("isDelete")))
//                .map(fv -> (Long) fv.get("picId"))
//                .collect(Collectors.toSet());
//
//        // 2. 筛选未删除的图片ID（排除已删除的ID）
//        Set<Long> alreadyAndInUseFavoriteIds = existingFavorites.stream()
//                .map(fv -> (Long) fv.get("picId"))
//                .filter(id -> !alreadyAndNoUseFavoriteIds.contains(id))
//                .collect(Collectors.toSet());
//
//        // ------------------- 结果验证 -------------------
//        System.out.println("已删除的图片ID集合: " + alreadyAndNoUseFavoriteIds);
//        System.out.println("未删除的图片ID集合: " + alreadyAndInUseFavoriteIds);
//
//        // 断言验证结果
//        assertEquals(3, alreadyAndNoUseFavoriteIds.size(), "已删除ID数量应正确");
//        assertEquals(3, alreadyAndInUseFavoriteIds.size(), "未删除ID数量应正确");
//        assertTrue(alreadyAndNoUseFavoriteIds.containsAll(Arrays.asList(1001L, 1002L, 1003L)), "已删除ID集合内容错误");
//        assertTrue(alreadyAndInUseFavoriteIds.containsAll(Arrays.asList(2001L, 2002L, 2003L)), "未删除ID集合内容错误");
//    }
//
//}
